package org.chl.sqlsession.sqltemplate.core;

import java.util.List;

/**
 * 数据操作接口
 */
public interface BaseDao {

    /**
     * 查询sql
     * @param sqlId
     * @param params
     * @return
     */
    SqlMeta getSql(String sqlId, Object params);

    /**
     * 查询List
     * @param sqlId
     * @param params
     * @param resultClass
     * @param <T>
     * @return
     */
    <T> List<T> selectList(String sqlId, Object params, Class<T> resultClass);

    /**
     * 查询单个实体
     * @param sqlId
     * @param params
     * @param resultClass
     * @param <T>
     * @return
     */
    <T> T selectOne(String sqlId, Object params, Class<T> resultClass);

    /**
     * 查询总条数
     * @param sqlId
     * @param params
     * @return
     */
    Long selectCount(String sqlId, Object params);

    /**
     * 插入
     * @param sqlId
     * @param params
     * @return
     */
    Boolean insert(String sqlId, Object params);

    /**
     * 修改
     * @param sqlId
     * @param params
     * @return
     */
    Boolean update(String sqlId, Object params);

    /**
     * 删除
     * @param sqlId
     * @param params
     * @return
     */
    Boolean delete(String sqlId, Object params);
}
